Warn if replace is not actually used
authorAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 12 Dec 2016 14:33:12 +0000 (17:33 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 12 Dec 2016 15:12:17 +0000 (18:12 +0300)
closes #3324

src/cargo/ops/cargo_compile.rs
tests/overrides.rs

index e3b22f9d8e31511c336972577d640abe6a7bd233..a4c3f1c6d453be1eec6f1e19b18b7291b881afb6 100644 (file)
@@ -163,6 +163,14 @@ pub fn resolve_dependencies<'a>(ws: &Workspace<'a>,
                                             method, Some(&resolve), None,
                                             &specs)?;
 
+    for &(ref replace_spec, _) in ws.root_replace() {
+        if !resolved_with_overrides.replacements().keys().any(|r| replace_spec.matches(r)) {
+            ws.config().shell().warn(
+                format!("package replacement is not used: {}", replace_spec)
+            )?
+        }
+    }
+
     let packages = ops::get_resolved_packages(&resolved_with_overrides,
                                               registry);
 
index d92f81791ccd187187071e20124d4e38f666b842..720a03cce253a4cc24d51148ce4a6761aaa24bb2 100644 (file)
@@ -922,6 +922,7 @@ fn overriding_nonexistent_no_spurious() {
                 execs().with_status(0));
     assert_that(p.cargo("build"),
                 execs().with_status(0).with_stderr("\
+[WARNING] package replacement is not used: [..]bar:0.1.0
 [FINISHED] [..]
 ").with_stdout(""));
 }